
 Virtual Hosts - Web Sites
    Os Virtual Hosts são elementos dentro do sistema web da 
Cloud-Bricks,
    que ajuda a conectar as solicitações da Web recebidas pela nuvem com
    servidores HTTP que irão atender a essas solicitações. O Host
    Virtual decide para qual servidor rotear solicitações com base no
    domínio do site que está sendo solicitado.
    
 
    
      Componentes Básicos de um Virtual Host
    Para entender como funciona e como configurar um Virtual Host,
      vários conceitos relacionados precisam ser aprendidos.
    Domínios
    Nomes de domínio são os nomes usados pela Internet para identificar
    redes e organizações. Por exemplo, cloud-bricks.net ou google.com
    Web sites that configure can be associated with one or more domains.
    
Protocolo HTTP/HTTPS
    HTTP
      é o protocolo de comunicação que permite navegadores "conversarem"
      com os servidores web para trocarem informações. HTTPS adiciona
      uma camada de segurança a comunicação, habilitando encriptação de
      dados usando TLS/SSL.
      Para configurar um Virtual Host com HTTPS, você deve primeiro configurar um certificado
        digital.
    Localizações
    Localizações são elementos que permitem separar um site em áreas ou
    pastas diferentes cada um com configurações independentes.
    Você pode configurar restrições de acesso para essas localizações,
    indicar qual servidor HTTP deve gerenciar conteúdo, gerar e
    controlar os redirecionamentos de cache.
    
As localizações podem restringir o acesso usando endereços IP
      configurados na lista de firewall - máquinas e
        redes.
    
    As localizações permitem que você ative e configure um mecanismo de Web Cache
    As licalizações também gerenciam o destino do pedido, portanto, é
      possível direcionar solicitações de um domínio para um servidor
      HTTP específico, ou redirecionar para um URL externo. Quando você
      configura um redirecionamento, o campo de destino aparece: coloque
      aqui o url onde queremos redirecionar o usuário.
    
    Configuração de Cache em Localizações
    Quando estiver dentro de um Local, o cache HTTP é ativado, temos
      duas opções de acordo com os cabeçalhos de cache que possuem o
      aplicativo. Veja mais informações
        sobre o sistema de cache.
    
    
      - Cache Expirado: Se o proxy reverso tiver na memória uma
        cópia já expirada de uma página (ou seja, seu tempo de cache
        expirou) e por algum motivo não for possível obter uma cópia
        atualizada (Exemplo: o servidor da Web está off-line), então
        autorizamos o proxy a entregar uma "cópia antiga" do site /
        página para cada pedido. Desta forma, podemos entregar uma cópia
        antiga em vez de falhar, entregar nada ou gerar um erro.
- Cache sem Cookie: Essa opção é especialmente útil
        quando o site usa um sistema de autenticação e, por meio de um
        cookie específico, indica que o conteúdo gerado durante a sessão
        não deve ser armazenado no cache. Ao activar esta opção, o campo
        aparece para introduzir o nome do cookie.
Redirecionar HTTP  
    O redirecionamento HTTP é uma opção para enviar o trafego para
      sites externos. O redirecionamento pode ser útil, por exemplo, se
      tivermos uma manutenção do site e todo o tráfego for redirecionado
      para um site diferente. Redirecionamento está no campo "Destino"
      nas localizações. Você pode escolher entre dois tipos de
      redirecionamento:
    
      - Redirecionamento 301 (Permanente): Esse redirecionamento
        indica que o host foi capaz de se comunicar com o servidor, mas
        o arquivo solicitado foi movido para outro endereço
        permanentemente.
 
- Redirecionamento 302 (Temporário): Esse redirecionamento
        indica que o host foi capaz de se comunicar com o servidor, mas
        o arquivo solicitado foi movido temporariamente para outro
        endereço.
 
Configurar um novo Virtual Host
    Vá para 
Sistema Web
      -> Virtual Hosts no menu esquerdo.
    

    Para que um website fique visível na Internet é necessário criar um
    virtual host e configurar os domínios associados a ele.
    
 
    
      -  Nome do virtual host, não podem haver dois nomes iguais.
- Protocolos do Website.
        - HTTP: Procolo comum para websites, sem segurança.
- HTTPS: Protocolo web seguro, utiliza camada de segurança
          SSL. Para maiores informações veja a sessão Certificados SSL.
- HTTP & HTTPS: Você pode habilitar o acesso ao seu site
          usando conexões seguras (HTTPS) ou inseguras (HTTP).
 
- Adicionar
        Domínios: Você pode configurar multiplos domínios virtuais em um
        único host.
 
- Nome do Domínio: Aqui você pode adicionar todos os domínios
        que foram comprados e estão apontando para a Cloud.
 Nós podemos colocar um nome de domínio padrão do sistema no
        formato virtualMachineName.NomeDoCliente.vnat.net.
- Domains delete button: Delete domains that have been
        added.
- Adicionar Localização: Permite adicionar multiplas
        localizações com configurações independentes.
- URI : Um URL é simplesmente um URI que  aponta para um
        recurso físico através de uma rede.
 Para este exemplo vamos usar a raíz do site "/".
 
- Restrição de Acesso: Você pode permitir o acesso de uma única
        rede na sessão Firewall
          - Máquinas e Redes.
 Para este exemplo vamos dar acesso a qualquer máquina da
        Internet com a opção QUALQUER.
 
- Virtualhost destino: É a localização do destino do tráfego.
 Ele pode ser um Redicionamento 301 ou 302, ou um servidor HTTP.
 Para mais informações vá para a sessão  Servidores HTTP.
 Para este exemplo vamos utilizar o servidor HTTP previamente
        configurado chamado WORDPRESS.
 
- Opção para habilitar o cache HTTP da Cloud-Bricks. Para este
        exemplo iremos deixar desmarcado.
- Botão Deletar Localização: Você pode deltar as localizações
        criadas. Esta ação é irreversível.
 
- OK: Quato clicado, a lista de Virtual Hosts será
        atualizada.
 
- Cancelar:
        Cancela a operação.
Clique em OK e então em Aplicar
        Alterações para salvar as alterações realizadas. Agora
      você pode acessar o site usando qualquer um dos domínios
      configurados.
    
    Acesso Restrido a Diretórios
    Por razões de segurança, muitas vezes é necessário restringir o
      acesso a um diretório ou URL do portal. Por exemplo, quando você
      está criando uma nova seção de um portal que está no URI /
      esportes, podemos restringir o acesso a apenas os desenvolvedores
      podem participar. Em seguida, um exemplo.
    O portal da web criado responde para no endereço http://wordpress.pruebas.vnat.net/
    
    
    Agora, vá para 
http://wordpress.pruebas.vnat.net/wordpress/,
    uma instalação do Wordpress será exibida.
    

    Agora altere o Virtual Host correspondente para acesso restrito a
    URL 
http://wordpress.pruebas.vnat.net/wordpress/.
    

    No campo "Permitir" escolha a rede que terá acesso exclusivo a URI 
/wordpress,
    para este caso escolhemos a rede GOOGLE_DNS_IPV4. Ao digitar
    novamente a URL 
http://wordpress.pruebas.vnat.net/wordpress/
    o acesso está restrito.
    

    Vá novamente para a URL 
http://wordpress.pruebas.vnat.net/
    e veja que ela permanece acessível normalmente.
    
 
    Redirecionamentos
    O redirecionamento é útil para controlar o acesso ao
      desenvolvimento de portais ou à opção de manutenção. Você pode
      redirecionar o tráfego para sites ou servidores externos. Para
      adicionar um redirecionamento para um portal é necessário
      modificar o virtual host configurado. Por exemplo ao entrar no
      portal http://wordpress.pruebas.vnat.net/google
      é apresentada a mensagem erro 404.
    
    
     
    Agora altere o Virtual Host correspondente para incluir um
      redirecionamento para o portal www.google.com
    
    
    Ao entrar no portal 
http://wordpress.pruebas.vnat.net/google
    será redirecionado para http://www.google.com
    
 
 
    Um site distribuído entre vários servidores HTTP
    Você pode fazer diferentes partes do mesmo site serem servidos por
    diferentes servidores HTTP.
    Como um exemplo, suponha que queremos em nosso site, o URI /suporte
    ser disponibilizado por um servidor HTTP específico.
    Se temos uma máquina virtual como servidor de suporte (sistema de
    chamados), você deve criar um 
servidor
      HTTP apontando para a porta e IP da máquina. 
    

    Atualize a lista e aplique as alterações. Alterando o Virtual Host,
    agora você pode editar os locais e adicionar uma nova URI, alterando
    a opção "Destino" para apontar para o servidor HTTP que você acabou
    de criar.
    

    Desta forma, é possível criar e distribuir os locais entre os
    diferentes servidores.
    
Criar regras de rewrite e return
    Na versão mais recente do sistema Cloud-Bricks, é possível usar
    o  
motor
      de regras do NGINX para criar regras de return e rewrite e
    poder controlar o comportamento dos seus web sites em situações
    especiais.
    É necessário conhecer as 
Expressões
      regulares para configurar este tipo de regras. A sintaxes do
    Perl é utilizada, porém não são necessárias as aspas (" , ') nem
    barras/slashes (/) para delimitar as expressões.
    Por favor consultar a 
documentação
      do NGINX para mais informações dos casos de uso para esta
    ferramenta.
 
    
      - Use este ícone para adicionar novas regras.
 
- Use este ícone para adicionar condições adicionais numa regra.
 
- Menu de operadores de comparação: Selecione o operador
        para comparar a variável da esquerda com a expressão regular da
        direita.
        - =   : Equals.  Verifica si o
          valor da variável é igual ao texto da direita.
 
- ~   : Match. Verifica se o valor da
          variável faz "match" com a expressão regular da direita
          (Sensível a maiúsculas/minúsculas)
 
- ~*  : iMatch. Verifica se o valor da
          variável faz "match" com a expressão regular da direita
          (Sensível a maiúsculas/minúsculas)
- != , !~ , !~* : Versões negativas dos operadores
          anteriores.
 
- Use este ícone para apagar uma regra.
 
- Menu de variáveis: Oferece uma lista das variáveis
        disponíveis para criar condições. É um subconjunto da lista de
          variáveis do NGINX.
 
        - host: Indica o nome de host utilizado na requisição
          HTTP.
 
- http_cookie: Contem as cookies enviadas pelo cliente.
 
- http_user_agent: Identifica o tipo de cliente usado
          na conexão.
 
- https:  Contem o valor "on" se a conexão é
          segura. Se não é vazio.
 
- is_mobile: Contem o valor "1" se o cliente é um
          dispositivo celular ou tablet Se não 0.
 
- is_bot: Contem o valor "1" se o cliente é um bot ou
          cliente não interativo. Se não 0. 
- is_desktop: Contem o valor "1" se o cliente usa um
          sistema operacional tipo Desktop. Se não 0.
- query_string: Contem o texto depois do "?" num URL.
 
- request: Linha completa original da requisição.
 
- request_method: Método HTTP usado na requisição
          ("GET", "POST", "HEAD" , etc)
- request uri:  URI original completa (com
          parâmetros).
- remote_addr:  Endereço IP do cliente ou proxy
          que fez a requisição.
 
- remote_port: Porta IP de origem utilizada pelo
          cliente ou proxy para fazer a requisição.
 
- scheme: Protocolo da requisição “http”
          ou “https”
- Use este ícone para apagar condições de uma regra.
 
- Para regras
          de rewrite, são necessárias duas expressões regulares:
 
        - Expressão regular "Match": Indica o formato que o URI deve
          ter para aplicar a regra.
 
- Expressão regular de troca. Indica o formato para alterar o
          URI se o match for validado.
 
- Use este campo para escrever as expressões regulares usadas
        para comparar as variáveis (5) com os operadores (3).
- Menu de acões: Aqui pode selecionar o tipo de ação que
        será executada se todas as condições forem verdadeiras.
 
        - return:  Responder à solicitação com um  código
            HTTP.
 
- rewrite_i: Redirecionamento interno. Usar expressões
          regulares para alterar o URI internamente sem enviar nenhuma
          resposta de redirect ao cliente. O URI será alterado antes de
          ser enviado para o servidor web da máquina virtual
          correspondente.
 
- rewrite_t : Usar expressões regulares para alterar o
          URI atual enviando um código HTTP 302 para o cliente.
- rewrite_p: Usar expressões regulares para alterar o
          URI atual enviando um código HTTP 301 para o cliente.
- Campos para enviar códigos de resposta HTTP em regras return.
 
        - Para códigos 3XX (redirecionamentos) é necessário
          providenciar um URL absoluto como destino.
 
- O código especial não padrão 444 é usado para encerrar a
          conexão atual sem enviar nenhuma resposta ao cliente.
 
- Todos os outros códigos podem enviar um texto adicional como
          resposta ao cliente.
 
    Por favor não hesite em contactar 
o
      nosso time de suporte  se precisar de ajuda na
    configuração de estas regras.